package edu.gdpu.classloader;

/**
 * @author mazebin
 * @date 2021年 07月06日 16:19:18
 * /**
 *  * <p>对于静态字段来说，只有直接定义了该字段的类才会被初始化
 *  * 当一个类在初始化时，要求父类全部都已经初始化完毕</p>
 *  * <P>-XX:+TraceClassLoading，用于追踪类的加载信息并打印出来</p>
 *  * <h2>jvm参数设置</h2>
 *  * <P> -XX:+option，表示开启option选项</p>
 *  * <P>-XX:-option，表示关闭option选项</p>
 *  * <P>-XX:option=value，表示将option的值设置为value</p>
 *  <h2>类加载：</h2>
 *  <p>在Java代码中，类型的加载，连接与初始化过程都是在程序运行期间初始化完成的！
 *  这种方式提供了更大的灵活性，增强了更多的可能！
 *  </p>
 */

public class ClassLoaderTest1 {
    public static void main(String[] args)  throws Exception{
        //System.out.println(Child.str1);
        //执行了类加载的第一步，加载和后续的操作均不会进行
      //  ClassLoaderTest1.class.getClassLoader().loadClass("edu.gdpu.classloader.Child");
    }
    public void setPerson(String s){
        System.out.println(s);
    }
}
class Parent{
    static String str1 = "welcome Parent";

    static {
        System.out.println("from Parent class");
    }
}
class Child extends  Parent{
    static String str2 = "welcome Child";

    static {
        System.out.println("from Child class");
    }
}
